Linux 常用命令速查表 (新手友好版)

Linux 常用命令速查表

📁 文件与目录操作

ls (list)

功能:列出指定目录下的文件和子目录。

ls [选项] [路径...]

常用选项

选项说明
-l使用长格式(详细信息)显示。
-a显示所有文件,包括以 . 开头的隐藏文件。
-h配合 -l 使用,以人类可读的格式显示文件大小 (如 K, M, G)。
-t按修改时间排序,最新的在前。
-R递归地列出所有子目录的内容。

实用示例

# 以详细、易读的格式显示当前目录的所有文件
ls -lah

# 列出 /etc 目录下所有内容,并按修改时间倒序排列
ls -lt /etc
💡 小白提示:在输出中,. 代表当前目录,.. 代表上一级目录。隐藏文件通常是系统的配置文件,没事不要乱动哦!

cd (change directory)

功能:切换当前工作目录。

cd [目录路径]

常用目标

目标路径说明
..切换到上一级目录。
~ 或 直接 cd切换到当前用户的家目录。
-切换到上一次所在的目录。

实用示例

# 进入 /var/log 目录
cd /var/log

# 返回家目录
cd ~

# 从任何地方返回到刚才所在的目录
cd -
💡 小白提示:在输入路径时,可以按 `Tab` 键,系统会自动补全路径或给出提示,非常方便!

cp (copy)

功能:复制文件或目录。

cp [选项] 源文件 目标文件

常用选项

选项说明
-r-R递归复制,用于复制整个目录。
-p保留源文件的属性(如修改时间、权限)。
-v显示详细的复制过程。

实用示例

# 将 a.txt 复制为 b.txt
cp a.txt b.txt

# 将整个 project 目录复制到 /backup 目录下
cp -r project /backup
💡 小白提示:如果目标文件已存在,cp 命令会默认覆盖它。操作前请确认,或者使用 cp -i 命令,这样在覆盖前会进行提示。

mv (move)

功能:移动文件/目录,或者重命名文件/目录。

mv 源文件/目录 目标文件/目录

是的,你没看错,移动和重命名是同一个命令!

实用示例

# 将 a.txt 重命名为 b.txt (在同一目录下)
mv a.txt b.txt

# 将 a.txt 移动到 /tmp 目录中
mv a.txt /tmp

# 将 a.txt 移动到 /tmp 目录并重命名为 c.txt
mv a.txt /tmp/c.txt
💡 小白提示:mv 的逻辑是:如果目标是一个已存在的目录,就执行移动;如果目标是一个不存在的路径,就执行重命名。

rm (remove)

功能:删除文件或目录。

rm [选项] 文件/目录...

常用选项

选项说明
-r-R递归删除,用于删除目录及其内容。
-f强制删除,不进行任何提示。
-i在删除前进行交互式提示。

实用示例

# 删除文件 a.txt
rm a.txt

# 强制递归删除整个 project 目录及其所有内容
rm -rf project
💡 小白提示:rm -rf 是 Linux 中最危险的命令之一!它会无情地删除一切且无法恢复。在使用前,请再三确认路径是否正确,尤其是在 `*` 通配符存在时。

mkdir (make directory)

功能:创建新目录。

mkdir [选项] 目录名...

常用选项

选项说明
-p递归创建目录。如果父目录不存在,会自动创建。

实用示例

# 创建一个名为 "images" 的目录
mkdir images

# 递归创建目录 a/b/c,即使 a 和 b 不存在
mkdir -p a/b/c
📝 文本处理

cat (concatenate)

功能:查看、创建、合并文件内容。

cat [选项] [文件...]

常用选项

选项说明
-n显示行号。

实用示例

# 查看 a.txt 的内容
cat a.txt

# 查看 a.txt 的内容并显示行号
cat -n a.txt

# 将 a.txt 和 b.txt 的内容合并,并输出到 c.txt
cat a.txt b.txt > c.txt
💡 小白提示:cat 适合查看内容较少的文件。对于大文件,它会一次性刷屏,推荐使用 less 命令。

less

功能:以分页的方式交互式查看文件内容,功能比 more 更强大。

less [文件]

交互操作

按键说明
空格键 / f向下翻一页。
b向上翻一页。
/关键词向下搜索关键词,按 n 查找下一个。
?关键词向上搜索关键词,按 n 查找下一个。
q退出查看。
💡 小白提示:less 是查看大日志文件的神器!它不会一次性把文件全部加载到内存,所以打开大文件速度很快。

head / tail

功能:分别用于查看文件的开头几行和末尾几行。

head/tail [选项] [文件]

常用选项

选项说明
-n 数字指定显示的行数,例如 -n 20 显示20行。
-f (仅tail)持续刷新显示文件末尾的新增内容,常用于实时监控日志。

实用示例

# 查看 a.txt 的前10行 (默认)
head a.txt

# 查看 b.txt 的后20行
tail -n 20 b.txt

# 实时监控 a.log 文件的更新
tail -f a.log

grep (Global Regular Expression Print)

功能:在文件中搜索包含指定模式(字符串或正则表达式)的行。

grep [选项] "模式" [文件...]

常用选项

选项说明
-i忽略大小写。
-v反向查找,显示不包含模式的行。
-n显示匹配行的行号。
-r递归搜索目录下的所有文件。

实用示例

# 在 a.log 中查找所有包含 "Error" 的行
grep "Error" a.log

# 在当前目录及子目录中,忽略大小写查找 "hello"
grep -ir "hello" .
💡 小白提示:grep 是 Linux 三剑客之一,极其强大。它经常和“管道符 |”一起使用,对其他命令的输出进行过滤。例如:ps aux | grep nginx 可以查看 Nginx 相关的进程。
⚙️ 系统信息与管理

ps (process status)

功能:查看系统当前运行的进程状态。

ps [选项]

常用选项组合

选项说明
aux显示所有用户的全部进程(BSD风格)。这是最常用的组合。
-ef以全格式显示所有进程(System V风格)。效果与aux类似。

实用示例

# 查看系统中的所有进程
ps aux

# 结合 grep 查找名为 nginx 的进程
ps aux | grep nginx

top

功能:实时动态地显示系统进程活动和资源占用情况(CPU, 内存等)。

top

交互操作

按键说明
P按 CPU 使用率排序。
M按内存使用率排序。
k输入进程ID (PID) 来结束一个进程。
q退出。
💡 小白提示:top 就像是 Linux 的“任务管理器”。当你感觉系统变卡时,运行它,看看是哪个进程在“作怪”!

df (disk free)

功能:查看文件系统的磁盘空间占用情况。

df [选项] [挂载点]

常用选项

选项说明
-h以人类可读的格式显示 (G, M, K)。
-T显示文件系统类型。

实用示例

# 以易读格式查看所有挂载点的磁盘使用情况
df -h

du (disk usage)

功能:估算文件或目录占用的磁盘空间大小。

du [选项] [文件/目录]

常用选项

选项说明
-h以人类可读的格式显示。
-s只显示总计大小,不显示子目录。
-c显示总计。

实用示例

# 查看当前目录下每个子目录的大小
du -h

# 只查看 project 目录的总大小
du -sh project

free

功能:显示系统内存的使用情况。

free [选项]

常用选项

选项说明
-h以人类可读的格式显示。
-s 秒数持续刷新显示,如 -s 2 每2秒刷新一次。

实用示例

# 以易读格式查看当前内存使用
free -h
🌐 网络操作

ping

功能:测试与目标主机的网络连通性。

ping [选项] 主机名/IP地址

常用选项

选项说明
-c 次数指定发送数据包的次数。

实用示例

# 测试与 www.google.com 的连通性,发送4个包后停止
ping -c 4 www.google.com
💡 小白提示:在 Linux 下,ping 会一直持续下去,直到你按 `Ctrl + C` 停止。加上 -c 选项是个好习惯。

ip / ifconfig

功能:查看和配置网络接口。

ip 是新一代的命令,推荐使用。ifconfig 在一些老系统上仍然很常见。

实用示例

# (推荐) 使用 ip 命令查看所有网络接口信息
ip addr show

# (旧) 使用 ifconfig 查看
ifconfig

wget / curl

功能:从网络上下载文件或获取数据。

实用示例

# 使用 wget 下载一个文件
wget https://example.com/somefile.zip

# 使用 curl 获取一个网页的源码并显示在终端
curl https://www.example.com

# 使用 curl 下载文件 (需要 -o 选项指定输出文件名)
curl -o somefile.zip https://example.com/somefile.zip
💡 小白提示:wget 更像一个纯粹的下载器,而 curl 是一个功能强大的数据传输工具,支持多种协议,常用于 API 测试。
👤 用户与权限

sudo (superuser do)

功能:以超级用户(root)或其他用户的身份执行命令。

sudo [要执行的命令]

实用示例

# 以 root 权限安装软件 (在 Debian/Ubuntu 系统)
sudo apt install nginx

# 以 root 权限编辑一个系统配置文件
sudo nano /etc/hosts
💡 小白提示:当系统提示 "Permission denied" (权限不足) 时,通常就是你需要使用 sudo 的时候了。执行时会要求输入你自己的用户密码,而不是 root 密码。

chmod (change mode)

功能:修改文件或目录的访问权限。

chmod [权限模式] 文件/目录

权限分为读(r=4), 写(w=2), 执行(x=1)。分别对应所有者(u), 所属组(g), 其他人(o)。

常用模式

数字模式符号模式说明
755u=rwx,go=rx所有者可读写执行,其他人可读可执行 (常用于目录和脚本)。
644u=rw,go=r所有者可读写,其他人只读 (常用于普通文件)。

实用示例

# 赋予 a.sh 脚本可执行权限
chmod +x a.sh

# 将 project 目录权限设置为 755
chmod 755 project

# 将 a.txt 文件权限设置为 644
chmod 644 a.txt

chown (change owner)

功能:修改文件或目录的所有者和所属组。

chown [选项] 用户:组 文件/目录

常用选项

选项说明
-R递归修改目录及其下所有文件。

实用示例

# 将 a.txt 的所有者改为 tom
chown tom a.txt

# 将 project 目录及其所有内容的所有者改为 tom,所属组改为 staff
chown -R tom:staff project
🧩 软件包管理

apt (Debian / Ubuntu)

功能:基于 Debian 的系统(如 Ubuntu)中用于管理软件包的工具。

常用命令

命令说明
sudo apt update更新可用软件包列表。
sudo apt upgrade升级所有已安装的软件包。
sudo apt install [包名]安装一个新的软件包。
sudo apt remove [包名]卸载一个软件包。
apt search [关键词]搜索软件包。
💡 小白提示:在安装任何软件前,最好先执行一次 sudo apt update,确保你的软件列表是最新的。

dnf / yum (CentOS / Fedora / RHEL)

功能:基于 Red Hat 的系统(如 CentOS, Fedora)中用于管理软件包的工具。

dnf 是新一代的包管理器,yum 在老版本(如 CentOS 7)中使用。

常用命令

命令说明
sudo dnf check-update检查可用的更新。
sudo dnf upgrade升级所有已安装的软件包。
sudo dnf install [包名]安装一个新的软件包。
sudo dnf remove [包名]卸载一个软件包。
dnf search [关键词]搜索软件包。
💡 小白提示:如果你使用的是 CentOS 7 或更早的版本,只需将命令中的 dnf 替换为 yum 即可。